]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
7 years agopointerA11yTimeout: Use notify handler instead of onUpdate callback
Florian Müllner [Fri, 26 Jul 2019 00:28:40 +0000 (02:28 +0200)]
pointerA11yTimeout: Use notify handler instead of onUpdate callback

We either need to queue a repaint on opacity updates or we don't,
whether the opacity change happens in an animation or not shouldn't
matter.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/654

7 years agopointerA11yTimeout: Fix style nit
Florian Müllner [Fri, 26 Jul 2019 00:25:32 +0000 (02:25 +0200)]
pointerA11yTimeout: Fix style nit

There's a stray space after the opening parentheses. While at it,
reindent the object literal.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/654

7 years agoswitcherPopup: Avoid unnecessary animation
Florian Müllner [Sat, 21 Jul 2018 03:20:35 +0000 (05:20 +0200)]
switcherPopup: Avoid unnecessary animation

Ever since commit 28bb0c1fb2, the popup's actual visibility has been
controlled by its :opacity property, not :visible.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/654

7 years agoappDisplay: Skip animation when hidden
Florian Müllner [Fri, 26 Jul 2019 01:04:38 +0000 (01:04 +0000)]
appDisplay: Skip animation when hidden

The time computation isn't just unnecessary in that case, it's likely
wrong as well: If we don't have a valid allocation, we may well end
up with a negative value, NaN or Infinity.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/654

7 years agoUpdate Indonesian translation
Kukuh Syafaat [Tue, 6 Aug 2019 10:49:56 +0000 (10:49 +0000)]
Update Indonesian translation

7 years agoallView: Redisplay on folder changes
Georges Basile Stavracas Neto [Tue, 2 Jul 2019 16:33:07 +0000 (13:33 -0300)]
allView: Redisplay on folder changes

Now that redisplaying is a lightweight operation that only
adds and removes what changed, we can not be concerned about
redisplaying on folder changes.

Redisplaying will be necessary when custom order in the app
grid is implemented, in order to update not only which icons
are hidden, but also their position.

Call _redisplay() in AllView when folders change.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/645

7 years agobaseAppView: Remove unused BaseAppView.addItem
Georges Basile Stavracas Neto [Tue, 2 Jul 2019 13:12:08 +0000 (10:12 -0300)]
baseAppView: Remove unused BaseAppView.addItem

Now that BaseAppView does not allow for subclasses to add
and remove items directly, the addItem() method can be
removed.

Remove BaseAppView.addItem().

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/645

7 years agoallView, folderView: Only add icons once
Georges Basile Stavracas Neto [Tue, 30 Jul 2019 15:15:51 +0000 (12:15 -0300)]
allView, folderView: Only add icons once

FolderView and AllView currently check if the item is
present in the BaseAppView._items map, in order to avoid
adding the same icon multiple times.

Now that BaseAppView._loadApps() has a different role --
it returns a list with all app icons, and BaseAppView
diffs with the current list of app icons -- checking the
BaseAppView._items map is wrong.

Make sure there are no duplicated items in the temporary
array returned by all _loadApps() implementations. Remove
the now unused BaseAppView.hasItem() method.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/645

7 years agobaseAppView: Only add and remove when necessary
Georges Basile Stavracas Neto [Tue, 2 Jul 2019 02:13:07 +0000 (23:13 -0300)]
baseAppView: Only add and remove when necessary

BaseAppView currently removes all icons, and readds them, every
time the list of app icons needs to be redisplayed. In order to
allow animating app icon positions in the future, however, we
cannot destroy the actors of the app icons.

Previous commits paved the way for us to do differential loading,
i.e. add only the icons that were added, and remove only what was
removed.

Make the BaseAppView effectively implement differential loading.
The BaseAppView.removeAll() method is removed, since we do not
remove all icons anymore. BaseAppView._loadApps() now returns an
array with the new apps, instead of putting them directly at the
BaseAppView lists.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/645

7 years agobaseAppView: Move _loadGrid() into _redisplay()
Georges Basile Stavracas Neto [Tue, 2 Jul 2019 02:01:59 +0000 (23:01 -0300)]
baseAppView: Move _loadGrid() into _redisplay()

Next commit will introduce differential loading of
app icons, and will reorganize this part of the
codebase.

When doing that, the ideal symmetry of the new code
would be:

 * Update BaseAppView._allItems array
 * Update BaseAppView._items map
 * Update BaseAppView._grid actor

Move the code in _loadGrid() into _redisplay() so that
we can check in-place which new icons need to be added.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/645

7 years agobaseAppView: Call loadGrid() directly
Georges Basile Stavracas Neto [Sat, 29 Jun 2019 16:22:08 +0000 (13:22 -0300)]
baseAppView: Call loadGrid() directly

Now that the three views follow the exact same loading routine
(remove all + load apps + load grid), we don't need each view
call loadGrid() directly anymore.

This is an important step in order to animate adding and removing
icons, since now we can diff old and new app icons properly.

Move all calls to BaseAppView.loadGrid() to a single one after
BaseAppView._loadApps(). Also add the underscore prefix, since
this is now considered a protected function.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/645

7 years agofrequentView: Use BaseAppView.addItem() and loadGrid()
Georges Basile Stavracas Neto [Sat, 29 Jun 2019 16:15:20 +0000 (13:15 -0300)]
frequentView: Use BaseAppView.addItem() and loadGrid()

FrequentView is another view that is slightly not unified with how
BaseAppView expects subclasses to load app icons. Instead of using
BaseAppView.addItem() and then calling BaseAppview.loadGrid(), it
adds the app icons directly to the icon grid.

Make FrequentView add icons using BaseAppview.addItem(), and load
the icons using BaseAppView.loadGrid().

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/645

7 years agofolderIcon: Move app icon loading to FolderView
Georges Basile Stavracas Neto [Sat, 29 Jun 2019 15:58:26 +0000 (12:58 -0300)]
folderIcon: Move app icon loading to FolderView

Future patches will diff the old and new icons of views, in order to
animate them when necessary (e.g. adding an app icon to a folder, or
from a folder back to the app grid). In order to do that, all views
must be streamlined in how they load app icons.

Currently, FrequentView and AllView are already following the behavior
expected by BaseAppView, but FolderView isn't. Its icons are loaded by
FolderIcon, and FolderView doesn't implement BaseView._loadApps(),
which makes it impossible to diff old and new apps.

Move the app icon loading routine from FolderIcon to FolderView, by
implementing the _loadApps() method.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/645

7 years agocleanup: Use milliseconds for animation times
Florian Müllner [Thu, 1 Aug 2019 23:13:10 +0000 (01:13 +0200)]
cleanup: Use milliseconds for animation times

The different units - seconds for Tweener and milliseconds for
timeouts - are not a big issue currently, as there is little
overlap. However this will change when we start using Clutter's
own animation framework (which uses milliseconds as well), in
particular where constants are shared between modules.

In order to prepare for the transition, define all animation times
as milliseconds and adjust them when passing them to Tweener.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/663

7 years agomeson: Avoid using relative paths to po directory
Benjamin Berg [Fri, 26 Apr 2019 10:33:58 +0000 (12:33 +0200)]
meson: Avoid using relative paths to po directory

Replace the relative path to the po directory with a toplevel definition
of po_dir and use that instead.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/507

7 years agodata: Update systemd units
Benjamin Berg [Fri, 19 Apr 2019 22:21:55 +0000 (00:21 +0200)]
data: Update systemd units

The existing units were never used as the corresponding support was
never merged into gnome-session.

This commits updates units to be usable with the newer gnome-session
unit definitions. Also added is appropriate failure/restart logic
including the ability to disable extensions. Note that extensions will
only be disabled if a failure happens in the first two minutes after
login.

https://gitlab.gnome.org/GNOME/gnome-session/merge_requests/13
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/507

7 years agodata: Flag in desktop file that gnome-shell can be started using systemd
Benjamin Berg [Mon, 5 Aug 2019 19:46:05 +0000 (21:46 +0200)]
data: Flag in desktop file that gnome-shell can be started using systemd

As gnome-shell is a required component for GNOME sessions, gnome-session
will currently always try to autostart it. However as we are moving towards
using systemd's user instance for session startup, gnome-session should only
be responsible for launching the shell when either not running under systemd
or when we were built without systemd support.

gnome-session can detect the former but not the latter, so communicate this
via the newly added X-GNOME-HiddenUnderSystemd key in the .desktop file.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/507
https://gitlab.gnome.org/GNOME/gnome-session/merge_requests/13

7 years agoUpdate Swedish translation
Anders Jonsson [Mon, 5 Aug 2019 20:41:06 +0000 (20:41 +0000)]
Update Swedish translation

7 years agoUpdate Romanian translation
Daniel Șerbănescu [Sun, 4 Aug 2019 13:09:14 +0000 (13:09 +0000)]
Update Romanian translation

7 years agoUpdated Spanish translation
Daniel Mustieles [Fri, 2 Aug 2019 07:14:52 +0000 (09:14 +0200)]
Updated Spanish translation

7 years agoUpdate Karbi translation
Jor Teron [Fri, 2 Aug 2019 07:12:56 +0000 (07:12 +0000)]
Update Karbi translation

7 years agost: Move slow-down-factor into settings
Florian Müllner [Thu, 25 Jul 2019 10:50:26 +0000 (12:50 +0200)]
st: Move slow-down-factor into settings

Now that we have a Settings singleton, we have a better place for the
slow-down-factor than an awkward extern variable.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/656

7 years agost: Fix property type
Florian Müllner [Thu, 1 Aug 2019 10:43:48 +0000 (12:43 +0200)]
st: Fix property type

Commit 8f3554ff accidentally changed the type of the StWidget:track-hover
property from boolean to object.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1482

7 years agoweather: Fix property name
Florian Müllner [Wed, 31 Jul 2019 23:46:05 +0000 (01:46 +0200)]
weather: Fix property name

It's g-*name*-owner. As the condition covers the unlikely case where
Weather is running before gnome-shell, this slipped through.

7 years agoci: Make eslint wrapper script usable outside gitlab's CI
Marco Trevisan (Treviño) [Wed, 31 Jul 2019 14:54:26 +0000 (16:54 +0200)]
ci: Make eslint wrapper script usable outside gitlab's CI

The eslint wrapper script is useful for development as well, but it currently
fails on systems where bash is not installed in /usr/bin.

Make it useful there as well by changing the shebang to use /usr/bin/env

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/655

7 years agoweather: Stop accessing app settings directly
Florian Müllner [Tue, 23 Jul 2019 10:49:40 +0000 (10:49 +0000)]
weather: Stop accessing app settings directly

Our current Weather integration depends on poking around the app's
settings, which we cannot do when the app is sandboxed (as its
filesystem is "hidden away" in a container in that case).

So instead, use our own GSettings schema for the settings, and sync
it with GNOME Weather via a custom D-Bus interface.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1158

7 years agost: Use g_object_notify_by_pspec()
Niels De Graef [Mon, 29 Jul 2019 15:59:41 +0000 (17:59 +0200)]
st: Use g_object_notify_by_pspec()

`g_object_notify()` actually takes a global lock to look up the property
by its name, which means there is a performance hit (albeit tiny) every
time this function is called. For this reason, always try to use
`g_object_notify_by_pspec()` instead.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/652

7 years agolightbox: Remove previously added tweens from target
Marco Trevisan (Treviño) [Wed, 31 Jul 2019 12:54:56 +0000 (14:54 +0200)]
lightbox: Remove previously added tweens from target

Since commit 007d30573 we use an actor effect to apply the radial effect and
we pass the effect to the tweener in order to animate it.

However, we always still remove the previously added tween from the actor,
instead that from the actual target.

So, depending the radial effect state, remove the tweens from the proper target

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/653

7 years agoEnsure G_PARAM_STATIC_STRINGS for all properties
Niels De Graef [Thu, 25 Jul 2019 17:34:19 +0000 (19:34 +0200)]
Ensure G_PARAM_STATIC_STRINGS for all properties

In `st`, we can do this by using `ST_PARAM_*`. In the other code files,
just use `G_PARAM_STATIC_STRINGS` directly.

This is just a minor convenience to prevent a few unnecessary string
copies.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/646

7 years agost: Cleanup ST_PARAM_* and add WRITABLE version
Niels De Graef [Sat, 27 Jul 2019 08:21:12 +0000 (10:21 +0200)]
st: Cleanup ST_PARAM_* and add WRITABLE version

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/646

7 years agouserWidget: Handle non-square icons gracefully
Florian Müllner [Wed, 10 Jul 2019 15:18:16 +0000 (17:18 +0200)]
userWidget: Handle non-square icons gracefully

We currently assume that user icons are square, which is the case when
set by the users settings panel, but not enforced by AccountsService.

Handle that case by moving the pixel size back to the actor and using
an appropriate background-size style property of 'cover' (which means
the smallest dimension of the image is scaled to fit the desired size).

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1144

7 years agoshell: Actually make GLSLEffect an effect
Florian Müllner [Fri, 26 Jul 2019 20:08:52 +0000 (22:08 +0200)]
shell: Actually make GLSLEffect an effect

A generic, introspectable Shader effect is not only more flexible
than a shader actor, it will also make it much easier to turn
Lightbox into an actor subclass and replace Tweener with Clutter's
own animation support.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/651

7 years agoshell: Properly rename type
Florian Müllner [Fri, 26 Jul 2019 19:09:29 +0000 (21:09 +0200)]
shell: Properly rename type

This is just a find-and-replace name change to make the actual code
changes in the follow-up commit more apparent.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/651

7 years agoshell: Rename GLSLQuad to GLSLEffect
Florian Müllner [Fri, 26 Jul 2019 19:00:06 +0000 (21:00 +0200)]
shell: Rename GLSLQuad to GLSLEffect

You can guess where this is going ...

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/651

7 years agolightbox: Remove unnecessary params
Florian Müllner [Fri, 26 Jul 2019 21:17:28 +0000 (23:17 +0200)]
lightbox: Remove unnecessary params

Actors have a default origin of (0, 0), so there's no need of
setting those explicitly.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/651

7 years agotheme: Fix focus style of icons in the calendar popup
Jonas Dreßler [Sun, 28 Jul 2019 07:53:14 +0000 (09:53 +0200)]
theme: Fix focus style of icons in the calendar popup

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1474

7 years agoshellDBus: Use floats instead of percentages for OSD levels
Jonas Dreßler [Sat, 27 Jul 2019 17:29:36 +0000 (19:29 +0200)]
shellDBus: Use floats instead of percentages for OSD levels

Due to typecasting being done when converting floats to integers in
gnome-settings-daemon, a volume of 0.9% in g-s-d will end up as 0% in
gnome-shell. This can lead to a mismatch of icons between the volume OSD
(the icon to use is determined by g-s-d itself) and the shells own
volume indicator (the icon to use is determined by the shell using the
volume received from g-s-d).

To fix this, simply get rid of the conversion from float to percentage
in g-s-d and back to floats in the shell and just send a float/double
value on DBus.

https://gitlab.gnome.org/GNOME/gnome-settings-daemon/merge_requests/78
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/385

7 years agoosdWindow: Remove LevelBar and use BarLevel directly
verdre [Sat, 2 Feb 2019 16:58:47 +0000 (17:58 +0100)]
osdWindow: Remove LevelBar and use BarLevel directly

LevelBar is not really used, all the checks are implemented inside
BarLevel as well and the accessible name is wrong because the osdWindow
doesn't only show the volume, but also the brightness and other things.

The workaround for updating the bars width is also no longer needed now
that we have BarLevel.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/385

7 years agoosdWindow: Use float values as input for osdWindow
verdre [Sat, 2 Feb 2019 16:50:04 +0000 (17:50 +0100)]
osdWindow: Use float values as input for osdWindow

Using the same type/interval as BarLevel means we can cut out the intermediate
LevelBar class in a follow-up cleanup.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/385

7 years agobarLevel: Return when trying to set value to already used value
verdre [Sat, 2 Feb 2019 17:01:56 +0000 (18:01 +0100)]
barLevel: Return when trying to set value to already used value

There are some cases (for example when tweening value changes), where
the level will be set to the same value it already is at. Avoid those
unnecessary repaints by checking whether the value is already used and
returning if it is.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/385

7 years agobarLevel: Use setters instead of methods
Florian Müllner [Thu, 25 Jul 2019 15:33:00 +0000 (17:33 +0200)]
barLevel: Use setters instead of methods

Switching to getters/setters make the code suitable for using
with Tweener and as GObject properties, both of which we'll
do soon enough.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/385

7 years agovolume: Remove unused method
verdre [Sat, 2 Feb 2019 17:55:11 +0000 (18:55 +0100)]
volume: Remove unused method

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/385

7 years agoUpdate Friulian translation
Fabio Tomat [Sun, 28 Jul 2019 07:37:16 +0000 (07:37 +0000)]
Update Friulian translation

7 years agoUpdate Catalan translation
Jordi Mas [Sat, 27 Jul 2019 22:49:20 +0000 (00:49 +0200)]
Update Catalan translation

7 years agoUpdate Indonesian translation
Kukuh Syafaat [Fri, 26 Jul 2019 11:24:57 +0000 (11:24 +0000)]
Update Indonesian translation

7 years agoci: Remove path limitation of js60 check
Florian Müllner [Thu, 25 Jul 2019 20:33:18 +0000 (22:33 +0200)]
ci: Remove path limitation of js60 check

The check is supposed to run for all merge requests that touch javascript
files, but for some reason I see it's skipped quite often. Better have
the test run unnecessarily some times than let bugs through, so remove
the limitation.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/647

7 years agoci: Fix identifying commits in MR
Florian Müllner [Thu, 25 Jul 2019 20:26:19 +0000 (22:26 +0200)]
ci: Fix identifying commits in MR

When a MR uses a private namespace, "origin" refers to that, and its
master branch may be outdated with regard to upstream master.

We are really only interested in checking the line changes from the commits
in the MR, so figure out the correct branch point instead.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/647

7 years agodocs: Fix interface prefix for D-Bus docs
Bastien Nocera [Thu, 25 Jul 2019 12:40:11 +0000 (14:40 +0200)]
docs: Fix interface prefix for D-Bus docs

The --interface-prefix= gtk-doc argument was being passed a stringified
array instead of a simple string.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/644

7 years agoUpdate Basque translation
Asier Sarasua Garmendia [Thu, 25 Jul 2019 06:43:46 +0000 (06:43 +0000)]
Update Basque translation

7 years agoappDisplay: Trivial code style improvement
Georges Basile Stavracas Neto [Sat, 29 Jun 2019 02:46:16 +0000 (23:46 -0300)]
appDisplay: Trivial code style improvement

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/643

7 years agobaseIcon: Align labels to the center
Georges Basile Stavracas Neto [Wed, 3 Jul 2019 16:27:21 +0000 (13:27 -0300)]
baseIcon: Align labels to the center

Ensure icon labels are aligned to the center, both
vertically and horizontally. This will be required
for using BaseIcons as drag actors.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/643

7 years agoappIcon: End running drag operations on destroy
Georges Basile Stavracas Neto [Sat, 29 Jun 2019 04:32:40 +0000 (01:32 -0300)]
appIcon: End running drag operations on destroy

AppIcon makes itself draggable, and handles the various DnD
routines such as 'drag-begin' and 'drag-end' by making the
Overview emit the appropriate signals.

However, when destroyed, the AppIcon does not try to finish
any drag operations that started. That causes the event
blocker in AllView not to be updated correctly when dragging
icons to outside folders.

Make AppIcon emit 'item-drag-end' when a drag operation
started and it's destroyed.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/643

7 years agoUpdate Karbi translation
Jor Teron [Wed, 24 Jul 2019 18:42:40 +0000 (18:42 +0000)]
Update Karbi translation

7 years agoUpdated Spanish translation
Daniel Mustieles [Wed, 24 Jul 2019 07:51:21 +0000 (09:51 +0200)]
Updated Spanish translation

7 years agoUpdate Karbi translation
Jor Teron [Wed, 24 Jul 2019 03:11:21 +0000 (03:11 +0000)]
Update Karbi translation

7 years agoci: Add eslint job to review stage
Florian Müllner [Sun, 30 Jun 2019 11:05:04 +0000 (13:05 +0200)]
ci: Add eslint job to review stage

We have now reduced the number of eslint errors enough to add it to
the CI pipeline. There are still plenty of errors left though, so we
cannot simply run eslint and fail on any errors. So instead, run it
through a fancy script that:

 - generates an eslint report using the "regular" configuration
 - generates an eslint report using the "legacy" configuration
 - creates a combined report with errors common to both configurations

When the pipeline is running for a branch or tag, the final report is
printed out and the job succeeds (we know there are errors left);
when the pipelne is running for a merge request, we fail if any errors
are reported for the lines modified/added by the MR.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/627

7 years agoci: Merge 'source_check' stage into 'review'
Florian Müllner [Tue, 23 Jul 2019 22:29:15 +0000 (00:29 +0200)]
ci: Merge 'source_check' stage into 'review'

GNOME apps use 'review' for the CI stage that generates and exports a
flatpak bundle after a successful build, so they need some other name
for anything that is checked before building; that's how we ended up
with the somewhat awkward 'source_check' stage (inherited from Polari).

But since the commit log check added a 'review' stage that runs pre-build,
use that for all checks that are performed before the build stage.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/627

7 years agoci: Include git in extension-ci image
Florian Müllner [Thu, 4 Jul 2019 15:35:48 +0000 (17:35 +0200)]
ci: Include git in extension-ci image

It's useful for anything that does not want to limit itself to the
checked out branch, like comparing source and target branch.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/627

7 years agoperf: Shut up another eslint error
Florian Müllner [Sat, 29 Jun 2019 13:14:37 +0000 (15:14 +0200)]
perf: Shut up another eslint error

The functions here are asynchronous to handle control back to the
mainloop while waiting for an action to complete, not to run operations
in parallel. That is, the race condition the rule is protecting against
isn't an issue here, so disable the error.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/627

7 years agoperf: Shut up an eslint error
Florian Müllner [Mon, 4 Feb 2019 12:14:09 +0000 (13:14 +0100)]
perf: Shut up an eslint error

The while(true) loop is intentional here and not a bug, so disable
the corresponding eslint rule.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/627

7 years agostyle: Disable camelcase rule for GObject properties
Florian Müllner [Fri, 1 Feb 2019 00:16:20 +0000 (01:16 +0100)]
style: Disable camelcase rule for GObject properties

For GObject properties, we follow the convention of all-lowercase,
dash-separated names. Those translate to underscores in getters/setters,
so exempt them from the newly added "camelcase" rule.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/627

7 years agocleanup: Mark globals used from other modules as exported
Florian Müllner [Thu, 31 Jan 2019 14:07:06 +0000 (15:07 +0100)]
cleanup: Mark globals used from other modules as exported

eslint cannot figure out that those symbols are used from other modules
via imports, so they trigger unused-variable errors. To fix, explicitly
mark those symbols as exported.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/627

7 years agocleanup: Mark unused (but useful) variables as ignored
Florian Müllner [Thu, 31 Jan 2019 14:08:00 +0000 (15:08 +0100)]
cleanup: Mark unused (but useful) variables as ignored

While we aren't using those destructured variables, they are still useful
to document the meaning of those elements. We don't want eslint to keep
warning about them though, so mark them accordingly.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/627

7 years agocleanup: Remove some unhelpful unused variables in destructuring
Florian Müllner [Fri, 1 Feb 2019 13:41:55 +0000 (14:41 +0100)]
cleanup: Remove some unhelpful unused variables in destructuring

We aren't using them, and they don't add much in terms of clarity,
so drop them to fix a couple of eslint errors.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/627

7 years agocleanup: Mark unused arguments as unused
Florian Müllner [Thu, 31 Jan 2019 14:08:10 +0000 (15:08 +0100)]
cleanup: Mark unused arguments as unused

This will stop eslint from warning about them, while keeping their
self-documenting benefit.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/627

7 years agocleanup: Remove some unhelpful unused arguments
Florian Müllner [Mon, 4 Feb 2019 11:30:53 +0000 (12:30 +0100)]
cleanup: Remove some unhelpful unused arguments

Those unused arguments aren't bugs - unbeknownst to eslint, they all
correspond to valid signal parameters - but they don't contribute
anything to clarity, so just remove them anyway.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/627

7 years agolint: Allow marking variables/arguments as unused
Florian Müllner [Mon, 28 Jan 2019 00:37:12 +0000 (01:37 +0100)]
lint: Allow marking variables/arguments as unused

Unused variables or arguments can indicate bugs, but they can also
help document the code, in particular in case of signal handlers
and destructuring.

Account for this by keeping the error, but set up patterns that allow
us to opt out of if for individual variables/arguments. For arguments
we pick a '_' prefix, while for variables we go with a suffix instead,
to not accidentally exempt private module-scope variables.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/627

7 years agobuild: Automatically bump mutter API version each cycle
Florian Müllner [Tue, 23 Jul 2019 20:34:58 +0000 (22:34 +0200)]
build: Automatically bump mutter API version each cycle

Mutter will now bump the API version automatically at the
beginning of a new development cycle; do the same here.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/641

7 years agoUpdate Esperanto translation
Kristjan SCHMIDT [Tue, 23 Jul 2019 19:08:49 +0000 (19:08 +0000)]
Update Esperanto translation

7 years agopanel: Remove unused constant
Florian Müllner [Tue, 23 Jul 2019 17:59:53 +0000 (19:59 +0200)]
panel: Remove unused constant

This was left-over in commit 2743f18af, and probably is the real reason
why the busy spinner wasn't using the shared AnimatedIcon.Spinner class:
The animation there was much slower.

Still, let's keep the code as-is for now, if we really need a different
animation time, we can add an optional constructor parameter to the
Spinner class.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/640

7 years agoappDisplay: Indent with spaces rather than tabs
Florian Müllner [Tue, 23 Jul 2019 17:58:05 +0000 (19:58 +0200)]
appDisplay: Indent with spaces rather than tabs

Another style nit that sneaked in with commit eaa32090b9.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/640

7 years agoappDisplay: Add missing semicolon
Florian Müllner [Tue, 23 Jul 2019 17:42:16 +0000 (19:42 +0200)]
appDisplay: Add missing semicolon

This slipped through in commit eaa320 ...

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/640

7 years agoappDisplay: Keep popup open on refresh
Ray Strode [Thu, 18 Jul 2019 15:13:27 +0000 (11:13 -0400)]
appDisplay: Keep popup open on refresh

If the list of applications is refreshed we currently close
the open app folder.

This commit adds logic to reopen the app folder on reload.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/628

7 years agoappDisplay: Add open method to FolderIcon
Ray Strode [Thu, 18 Jul 2019 14:19:13 +0000 (10:19 -0400)]
appDisplay: Add open method to FolderIcon

At the moment the only way to open a folder icon is to click on it;
there's no API to open the icon programmatically.

This commits adds an open method and makes the click handler use
it.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/628

7 years agoappDisplay: Stop watching FolderIcon parent view when destroyed
Ray Strode [Thu, 18 Jul 2019 18:49:30 +0000 (14:49 -0400)]
appDisplay: Stop watching FolderIcon parent view when destroyed

When a FolderIcon is opened, it asks the parent view to allocate
space for it, which takes time.  Eventually, the space-ready
signal is emitted on the view and the icon can make use of the new
space with its popup.  If the icon gets destroyed in the
interim, though, space-ready signal handler still fires.

This commit disconnects the signal handler so it doesn't get called
on a destroyed icon.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/628

7 years agoappDisplay: Add destroy handler for FolderIcon
Ray Strode [Mon, 22 Jul 2019 14:57:57 +0000 (10:57 -0400)]
appDisplay: Add destroy handler for FolderIcon

It is important that the FolderView of a FolderIcon always
gets destroyed before the AppFolderPopup, since the view
may or may not be in the popup, and the view should
get cleaned up exactly once in either case.

This commit adds a destroy handler on FolderIcon to ensure
things get taken down in the right order, and to make sure
the view isn't leaked if it's not yet part of the popup.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/628

7 years agoappDisplay: Clear AllView reference to current popup when destroyed
Ray Strode [Thu, 18 Jul 2019 14:06:38 +0000 (10:06 -0400)]
appDisplay: Clear AllView reference to current popup when destroyed

AllView contains a reference to the current popup that lingers after
the popup is destroyed.

This commit fixes that, by explicitly nullifying when appropriate.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/628

7 years agoappDisplay: Add AppFolderPopup destroy handler
Ray Strode [Mon, 22 Jul 2019 15:02:10 +0000 (11:02 -0400)]
appDisplay: Add AppFolderPopup destroy handler

At the moment AppFolderPopup calls popdown on destruction,
which leads to open-state-changed getting emitted after
the actor associated with the popup is destroyed.

This commit handles ungrabbing and closing from an
actor destroy handler to side-step the open-state-changed
signal.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/628

7 years agoiconGrid: Clear meta_later callback on destruction
Ray Strode [Mon, 22 Jul 2019 15:06:30 +0000 (11:06 -0400)]
iconGrid: Clear meta_later callback on destruction

The IconGrid code sometimes sets up a callback to be invoked
later right before being destroyed.

This commit adds a destroy handler to cancel the callback.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/628

7 years agoappDisplay: Don't leak duplicate items in AppView
Ray Strode [Mon, 15 Jul 2019 17:52:58 +0000 (13:52 -0400)]
appDisplay: Don't leak duplicate items in AppView

If an icon already exists in an app view with the same id, the
duplicate is not added on a call to addItem.  Unfortunately,
since it's not added, the icon actor gets orphaned and leaked.

This commit address the problem by introducing a new hasItem
method and disallowing callers to call addItem with a duplicate
in the first place.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/628

7 years agoiconGrid: Add missing import for GLib
Daniel van Vugt [Tue, 23 Jul 2019 06:14:50 +0000 (14:14 +0800)]
iconGrid: Add missing import for GLib

To silence warnings:

JS ERROR: ReferenceError: GLib is not defined
_updateIconSizes@resource:///org/gnome/shell/ui/iconGrid.js:771:9

https://gitlab.gnome.org/GNOME/gnome-shell/issues/1462

7 years agojs: Add missing return values to later_add() handlers
Florian Müllner [Mon, 22 Jul 2019 18:37:33 +0000 (20:37 +0200)]
js: Add missing return values to later_add() handlers

meta_later_add() is modelled after g_idle_add() and friends, and
the handler's boolean return value determines whether it should
be scheduled again or removed. There are some places where we omit
the return value, add them (although the implicit return value of
"undefined" already gives us the intended result).

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/637

7 years agopanel: Use dedicated Spinner class
Florian Müllner [Mon, 22 Jul 2019 14:46:40 +0000 (16:46 +0200)]
panel: Use dedicated Spinner class

The startup/busy indication in the app menu was left out of commit
22e21ad7d1 because it doesn't use a hard-coded image, but as the
image in the CSS is actually the same used by the spinner class,
drop the "custom" styling and use the regular spinner.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/636

7 years agoextensionPrefs: Add missing return value
Florian Müllner [Sat, 20 Jul 2019 22:07:00 +0000 (00:07 +0200)]
extensionPrefs: Add missing return value

When commit a7ec7583aaa17 merged two functions into one, it left
out the expected return value from one branch.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/635

7 years agolint: Enforce consistent return
Florian Müllner [Tue, 12 Feb 2019 10:07:55 +0000 (11:07 +0100)]
lint: Enforce consistent return

While all javascript functions have a return value - either an explicit
one from a return statement, or an implicit "undefined" - mixing both in
the same function is almost certainly an oversight, and more often than
not a bug.

Enable the corresponding eslint rule to catch those errors.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/635

7 years agoUpdate Brazilian Portuguese translation
Rafael Fontenelle [Mon, 22 Jul 2019 02:49:59 +0000 (02:49 +0000)]
Update Brazilian Portuguese translation

7 years agoUpdate Basque translation
Asier Sarasua Garmendia [Sun, 21 Jul 2019 18:27:36 +0000 (18:27 +0000)]
Update Basque translation

7 years agobuild: Bump gsettings-desktop-schemas requirement
Florian Müllner [Sat, 20 Jul 2019 16:25:29 +0000 (18:25 +0200)]
build: Bump gsettings-desktop-schemas requirement

... for the new disable-hot-corners setting.

7 years agoBump version to 3.33.4
Florian Müllner [Sat, 20 Jul 2019 15:43:47 +0000 (17:43 +0200)]
Bump version to 3.33.4

Update NEWS.

7 years agoextensionSystem: Allow disabling session mode extensions
Didier Roche [Wed, 17 Jan 2018 12:43:11 +0000 (13:43 +0100)]
extensionSystem: Allow disabling session mode extensions

Trying to disable an extension that is enabled by the session mode
currently has no effect, which is clearly confusing. We could update
the various extension UIs to reflect that via sensitivity, but being
unable to configure extensions based on which session the user picked
at login isn't obvious either.

So instead, add a 'disabled-extensions' gsettings key to list extensions
that should not be enabled which takes precedence over 'enabled-extensions'
and can be used to disable session mode extensions.

https://bugzilla.gnome.org/show_bug.cgi?id=789852

7 years agoextensionSystem: Store extensions in a Map
Florian Müllner [Sun, 7 Jul 2019 22:01:11 +0000 (00:01 +0200)]
extensionSystem: Store extensions in a Map

After making the extensions map private to the ExtensionManager, we can
switch it to a proper hash table which is more appropriate.

https://bugzilla.gnome.org/show_bug.cgi?id=789852

7 years agoextensionSystem: Move extension loading into ExtensionManager
Florian Müllner [Sun, 7 Jul 2019 21:38:27 +0000 (23:38 +0200)]
extensionSystem: Move extension loading into ExtensionManager

Now that extension loading and the extensions map are no longer shared
between the gnome-shell and gnome-shell-extension-prefs processes, we
can move both into the ExtensionManager which makes much more sense
conceptually.

https://bugzilla.gnome.org/show_bug.cgi?id=789852

7 years agoextensionPrefs: Switch to D-Bus API to get extension live state
Didier Roche [Thu, 1 Nov 2018 12:55:17 +0000 (13:55 +0100)]
extensionPrefs: Switch to D-Bus API to get extension live state

By direclty using the underlying GSetting, whether or not an extension
appears as enabled or disabled currently depends only on whether it is
included in the 'enabled-extensions' list or not.

However this doesn't necessarily reflect the real extension state, as an
extension may be in error state, or enabled via the session mode.

Switch to the extensions D-Bus API to ensure that the list of extensions
and each extension's state correctly reflects the state in gnome-shell.

https://bugzilla.gnome.org/show_bug.cgi?id=789852

7 years agoextensionPrefs: Override getCurrentExtension() for extensions
Florian Müllner [Fri, 5 Jul 2019 23:48:05 +0000 (01:48 +0200)]
extensionPrefs: Override getCurrentExtension() for extensions

Extensions are used to calling the getCurrentExtension() utility function,
both from the extension itself and from its preferences. For the latter,
that relies on the extensions map in ExtensionUtils being populated from
the separated extension-prefs process just like from gnome-shell.

This won't be the case anymore when we switch to the extensions D-Bus API,
but as we know which extension we are showing the prefs dialog for, we
can patch in a simple replacement that gives extensions the expected API.

https://bugzilla.gnome.org/show_bug.cgi?id=789852

7 years agoextensionPrefs: Attach extension object to each row
Didier Roche [Thu, 1 Nov 2018 12:50:30 +0000 (13:50 +0100)]
extensionPrefs: Attach extension object to each row

Each row represents an extension, so it makes sense to associate the
rows with the actual extensions instead of linking rows and extensions
by looking up the UUID in the external extensions map in ExtensionUtils.

This will also make it much easier to stop using the shared extension
loading / map in favor of the extension D-Bus API.

https://bugzilla.gnome.org/show_bug.cgi?id=789852

7 years agoextensionSystem: Add canChange property to extensions
Didier Roche [Tue, 4 Dec 2018 08:31:27 +0000 (09:31 +0100)]
extensionSystem: Add canChange property to extensions

Whether or not an extension can be enabled/disabled depends on various
factors: Whether the extension is in error state, whether user extensions
are disabled and whether the underlying GSettings keys are writable.

This is complex enough to share the logic, so add it to the extension
properties that are exposed over D-Bus.

https://bugzilla.gnome.org/show_bug.cgi?id=789852

7 years agoshellDBus: Add new 'ExtensionStateChanged' signal
Florian Müllner [Mon, 8 Jul 2019 10:21:10 +0000 (12:21 +0200)]
shellDBus: Add new 'ExtensionStateChanged' signal

The existing 'ExtensionStatusChanged' signal has a fixed set of parameters,
which means we cannot add additional state without an API break.  Deprecate
it in favor of a new 'ExtensionStateChanged' signal which addresses this
issue by taking the full serialized extension as parameter.

https://bugzilla.gnome.org/show_bug.cgi?id=789852

7 years agoextensionUtils: Add functions to (de)serialize extensions
Didier Roche [Thu, 1 Nov 2018 12:55:17 +0000 (13:55 +0100)]
extensionUtils: Add functions to (de)serialize extensions

Serializing an extension for sending over D-Bus is currently done by the
appropriate D-Bus method implementations. Split out the code as utility
function and add a corresponding deserialization function, which we will
soon use when consuming the D-Bus extension API from the extension-prefs
tool.

https://bugzilla.gnome.org/show_bug.cgi?id=789852

7 years agoextensionSystem: Add methods to enable/disable extensions
Didier Roche [Wed, 17 Jan 2018 12:43:11 +0000 (13:43 +0100)]
extensionSystem: Add methods to enable/disable extensions

Extensions are currently enabled or disabled by directly changing the
list in the 'enabled-extensions' GSettings key. As we will soon add
an overriding 'disabled-extensions' key as well, it makes sense to
offer explicit API for enabling/disabling to avoid duplicating the
logic.

For the corresponding D-Bus API, the methods were even mentioned in
the GSettings schema, albeit unimplemented until now.

https://bugzilla.gnome.org/show_bug.cgi?id=789852

7 years agoextensionSystem: Make methods to call extension functions private
Florian Müllner [Mon, 8 Jul 2019 00:53:32 +0000 (02:53 +0200)]
extensionSystem: Make methods to call extension functions private

While public methods to enable/disable extensions make sense for an
extension manager, the existing ones are only used internally. Make
them private and rename them, so that we can re-use the current
names for more useful public methods.

https://bugzilla.gnome.org/show_bug.cgi?id=789852